// 定义最大容量块为50MB
const maxChunkSize = 52428800;
// 计算文件需要被分成的块数
const chunkSum = Math.ceil(file?.size / maxChunkSize);

// 创建文件块
export const createFileChunks = async ({file, chunkSum, setProgress}) => {
  // 存储文件块的数组
  const fileChunkList = [];
  // 计算每个块的大小
  const chunkSize = Math.ceil(file?.size / chunkSum);
  let start = 0;
  for (let i = 0; i < chunkSum; i++) {
    // 计算每个块的结束位置
    const end = start + chunkSize;
    // 将文件块添加到数组中
    fileChunkList.push({
      index: i,
      filename: file?.name,
      file: file.slice(start, end)
    });
    // 更新下一个块的起始位置
    start = end;
  }
  // 获取文件的哈希值
  const result = await getFileHash({chunks: fileChunkList, setProgress});
  // 将哈希值添加到每个文件块中
  fileChunkList.map((item, index) => {
    item.key = result;
  });
  // 返回文件块数组
  return fileChunkList;
};

